#!/usr/bin/env node
// const log = console.log;
// const me = {
//     name:'wangding',
//     age:22,
//     qq:'265316'

// };
// log('name:%s',me.name);  //string
// log('age:%d',me.age);  //digital
// log('num:%i',45);  //integer
// log('PI:%f',Math.PI);  //float
// log('user:%j',me);  //json
// log('me:%o',me);  //object
// //四种结果都一样
// log('name:%s',me.name);
// log('name:',me.name);
// log('name:'+me.name);
// log(`n
// 01-format.js

// 定义 user 对象
const user = {
    name: 'John Doe',
    age: 30,
    qq: '12345678'
  };
  
  // 使用六种占位符输出四种变量类型
  console.log('字符串: %s', user.name);
  console.log('整数: %d', user.age);
  console.log('浮点数: %f', 3.14159);
  console.log('对象: %j', user);
  
  // 使用四种不同的方式输出字符串信息
  console.log('Hello, %s!', user.name);
  console.log(`Hello, ${user.name}!`);
  console.info('Hello, %s!', user.name);
  console.warn('Hello, %s!', user.name);
  
  // 使用 console.dir 输出对象和对象的数组
  console.dir(user);
  const users = [user, { name: 'Jane Doe', age: 25, qq: '87654321' }];
  console.dir(users);
  
  // 使用 console.dir 输出层次较深的对象
  const deepObject = {
    user: user,
    details: {
      address: {
        street: '123 Main St',
        city: 'Anytown'
      }
    }
  };
  console.dir(deepObject);
  
  // 使用 console.table 输出对象和对象的数组
  console.table(users);
  console.table(deepObject);
  
  // 使用 console.table 输出对象数组的某些字段
  console.table(users, ['name', 'age']);
  
  // 向标准错误流中输出信息
  console.error('Error: something wrong!');
  
  // 通过命令行重定向观察 console.log 和 console.error 两个方法所使用流的区别
  console.log('This is a standard log message.');
  console.error('This is an error log message.');
